package com.aiiju.core.service.tool;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import info.monitorenter.cpdetector.io.ASCIIDetector;
import info.monitorenter.cpdetector.io.CodepageDetectorProxy;
import info.monitorenter.cpdetector.io.JChardetFacade;
import info.monitorenter.cpdetector.io.ParsingDetector;
import info.monitorenter.cpdetector.io.UnicodeDetector;

public class ReadService {
	
	/**
	 * 读取文件
	 * @Description: 把一个文件。按照编码集读取到文件中
	 * @param path
	 * @return
	 * @throws Exception
	 * @author: aiju
	 * @time:2017年11月30日 下午10:07:22
	 */
	 public static String readFile(String path) throws Exception {  
	        File file = new File(path);  
	        CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();  
	        detector.add(new ParsingDetector(false));  
	        detector.add(JChardetFacade.getInstance());  
	        detector.add(ASCIIDetector.getInstance());  
	        detector.add(UnicodeDetector.getInstance());  
	        java.nio.charset.Charset charset = null;  
	        try {  
	            charset = detector.detectCodepage(file.toURI().toURL());  
	        } catch (Exception ex) {  
	            ex.printStackTrace();  
	        }  
	        String charsetName = null;  
	        if (charset != null) {  
	            charsetName = charset.name();  
	        } else {  
	            charsetName = "UTF-8";  
	        }  
	        BufferedReader reader = new BufferedReader(new InputStreamReader(  
	                new FileInputStream(file), charsetName));  
	        String line = null;  
	        String lines = "";  
	        while ((line = reader.readLine()) != null) {  
	            lines += line + "\n";  
	        }  
	        reader.close();  
	        return lines;  
	    }  
	 
	 
	 public static String toNewString(String text) throws Exception {  
		 
	        Matcher m = Pattern.compile("(?m)^.*$").matcher(text);

	        StringBuilder sb = new StringBuilder();
	        while (m.find()) {
//	            System.out.println("line = " + m.group());
	            sb.append(m.group()).append("\r\n");
	        }
		 return sb.toString();
	 }
	 

}
